package connect

type mySQL struct {
	ip       string
	port     string
	admin    string
	password string
}

// Check 检测
func (s *mySQL) Check(p string) bool {
	return mySQLConnectTest(s.ip, s.port, s.admin, s.password)
}

// mySQLConnectTest mySQL的连接测试
func mySQLConnectTest(ip, port, admin, pwd string) bool {
	// TODO 连接测试，连接上了记得关闭连接
	return false
}

// NewMySQL MySQL的构造器，设置了一些默认值
func NewMySQL(options ...func(sql *mySQL)) (*mySQL, error) {
	mysql := &mySQL{
		ip:       "localhost",
		port:     "3306",
		admin:    "root",
		password: "",
	}
	for _, f := range options {
		f(mysql)
	}
	return mysql, nil
}

func MysqlIP(ip string) func(*mySQL) {
	return func(mySQL *mySQL) {
		mySQL.ip = ip
	}
}

func MysqlPort(port string) func(*mySQL) {
	return func(mySQL *mySQL) {
		mySQL.port = port
	}
}

func MysqlAdmin(admin string) func(*mySQL) {
	return func(mySQL *mySQL) {
		mySQL.admin = admin
	}
}

func MysqlPWD(pwd string) func(*mySQL) {
	return func(mySQL *mySQL) {
		mySQL.password = pwd
	}
}
